<?php 
if(!isset($ruta_raiz))
	$ruta_raiz="../../";
	
require_once($ruta_raiz."config.php");
require_once($ruta_raiz."JBPM/funcionesAuxiliares/Connection/Connection.php");
require_once($ruta_raiz."JBPM/funcionesAuxiliares/Dependencias/IDependenciaFaceade.php");
session_start();

class DependenciaFacade implements IDependenciaFacade{
	/**
	 * objeto de conexion y consultas a la base de datos
	 *
	 * @var ConectionHandler;
	 */
	private $db;
	private $hoy;
	private $dependencia;
	
	public  function __construct($ruta_raiz,$dependencia,$tipoDocumento=1){
		 $this->db = new ConnectionHandler( "$ruta_raiz" );
    	 if (!defined('ADODB_FETCH_ASSOC'))
    			define('ADODB_FETCH_ASSOC',2);
    	$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
    	$fecha_hoy = Date("Y-m-d");
    	$this->tipoDocumento;
		$this->hoy=$this->db->conn->DBDate( $fecha_hoy );
		$this->dependencia=($dependencia!="")?"m.cod_depe ={$dependencia} AND " :"";
	}
	public function consultaSubserie($serie,$tipo=1){
		
		$salida=false;
		$consulta = "select distinct su.sgd_sbrd_codigo AS clave, su.sgd_sbrd_descrip AS valor
						from sgd_mrd_matrird m 
							inner join sgd_sbrd_subserierd su on su.sgd_sbrd_codigo = m.sgd_sbrd_codigo
						where {$this->dependencia} 
						       m.sgd_srd_codigo = '{$serie}'
							   and su.sgd_srd_codigo = '{$serie}'
						       and ".$this->hoy." between su.sgd_sbrd_fechini and su.sgd_sbrd_fechfin
						 order by 1,2";	
		
			if($resultado = $this->db->query($consulta)){
				$salida=$this->construirSalida($resultado,$tipoSalida);
			}
		return $salida;		
			
	}
	public function consultaSerie($tipoSaliada=1){
		$salida=false;
		$consulta = "select distinct s.sgd_srd_codigo as clave , s.sgd_srd_descrip as valor 
	         from sgd_mrd_matrird m 
	              inner join  sgd_srd_seriesrd s on s.sgd_srd_codigo = m.sgd_srd_codigo
			 where {$this->dependencia}
			 	   ".$this->hoy." between s.sgd_srd_fechini and s.sgd_srd_fechfin
			 order by 1,2
			  ";
		if($resultado = $this->db->query($consulta)){
				$salida=$this->construirSalida($resultado,$tipoSalida);
			}
		return $salida;
	}
	private function construirSalida($resultado,$opcion){
		$salida="";
		$plantilla="";
		switch($opcion){
			case 1:
				$plantilla="<option value=\"clave\" > clave - valor </option>
				";
				break;
			case 2:	
				$plantilla="clave|valor";
				break;
			case 3:	
				$plantilla="<nodo id=\"clave\">valor</nodo>
				";
			break;
			default:
					$plantilla="<option value=\"clave\" >clave-valor</option>";
				break;	
		}
		while(!$resultado->EOF){
			$salida.= str_replace(array("clave","valor"),array($resultado->fields['CLAVE'],$resultado->fields['VALOR']),$plantilla);
			$resultado->MoveNext();
		}
		
		return $salida;
		
	}
	public function tipoDocumento($serie,$subserie,$tipoSalida=1){
		
		$salida=false;
		$ent=1;
		$consulta= "select distinct t.sgd_tpr_codigo AS clave, t.sgd_tpr_descrip AS valor
	         from sgd_mrd_matrird m 
	         inner join  sgd_tpr_tpdcumento t on t.sgd_tpr_codigo = m.sgd_tpr_codigo
			 where {$this->dependencia}
 			       m.sgd_srd_codigo = '{$serie}'
			       and m.sgd_sbrd_codigo = '{$subserie}'
 			       and t.sgd_tpr_tp{$ent}='1'
			 order by 1,2";	
		if($resultado = $this->db->query($consulta)){
			$salida=$this->construirSalida($resultado,$tipoSalida);
		}
		return $salida;
	}
	public function procesoExpediente($serie,$subserie,$tipoSalida=1){
	}
	public function tipoDocumentoFlujo($tpd,$tipoSalida=1){
		$consulta= "select distinct F.SGD_FFLU_CODIGO AS clave, F.SGD_FFLU_NOMBRE AS valor
	         from  SGD_FFLU_FLUJODOCUMENTAL F 
	              INNER JOIN SGD_FTPD_FLUTPD FT ON F.SGD_FFLU_CODIGO=FT.SGD_FFLU_CODIGO
	         where {$this->dependencia}
 			       FT.SGD_TPR_CODIGO={$tpd}
			 order by 1,2";	
		if($resultado = $this->db->query($consulta)){
			$salida=$this->construirSalida($resultado,$tipoSalida);
		}
		return $salida;
	}
	public function getDB(){
		return $this->db;
	}
	
}
?>
